home *** CD-ROM | disk | FTP | other *** search
- package javax.activation;
-
- import com.sun.activation.registries.LogSupport;
- import com.sun.activation.registries.MailcapFile;
- import java.io.File;
- import java.io.IOException;
- import java.io.InputStream;
- import java.net.URL;
- import java.util.ArrayList;
- import java.util.Iterator;
- import java.util.List;
- import java.util.Map;
-
- public class MailcapCommandMap extends CommandMap {
- private static MailcapFile defDB = null;
- // $FF: renamed from: DB com.sun.activation.registries.MailcapFile[]
- private MailcapFile[] field_0;
- private static final int PROG = 0;
-
- public MailcapCommandMap() {
- ArrayList var1 = new ArrayList(5);
- Object var2 = null;
- var1.add((Object)null);
- LogSupport.log("MailcapCommandMap: load HOME");
-
- try {
- String var3 = System.getProperty("user.home");
- if (var3 != null) {
- String var4 = var3 + File.separator + ".mailcap";
- MailcapFile var9 = this.loadFile(var4);
- if (var9 != null) {
- var1.add(var9);
- }
- }
- } catch (SecurityException var7) {
- }
-
- LogSupport.log("MailcapCommandMap: load SYS");
-
- try {
- String var11 = System.getProperty("java.home") + File.separator + "lib" + File.separator + "mailcap";
- MailcapFile var10 = this.loadFile(var11);
- if (var10 != null) {
- var1.add(var10);
- }
- } catch (SecurityException var6) {
- }
-
- LogSupport.log("MailcapCommandMap: load JAR");
- this.loadAllResources(var1, "META-INF/mailcap");
- LogSupport.log("MailcapCommandMap: load DEF");
- synchronized(MailcapCommandMap.class) {
- if (defDB == null) {
- defDB = this.loadResource("/META-INF/mailcap.default");
- }
- }
-
- if (defDB != null) {
- var1.add(defDB);
- }
-
- this.field_0 = new MailcapFile[var1.size()];
- this.field_0 = (MailcapFile[])var1.toArray(this.field_0);
- }
-
- private MailcapFile loadResource(String var1) {
- InputStream var2 = null;
-
- MailcapFile var4;
- try {
- var2 = SecuritySupport.getResourceAsStream(this.getClass(), var1);
- if (var2 == null) {
- if (LogSupport.isLoggable()) {
- LogSupport.log("MailcapCommandMap: not loading mailcap file: " + var1);
- }
-
- return null;
- }
-
- MailcapFile var3 = new MailcapFile(var2);
- if (LogSupport.isLoggable()) {
- LogSupport.log("MailcapCommandMap: successfully loaded mailcap file: " + var1);
- }
-
- var4 = var3;
- } catch (IOException var17) {
- if (LogSupport.isLoggable()) {
- LogSupport.log("MailcapCommandMap: can't load " + var1, var17);
- }
-
- return null;
- } catch (SecurityException var18) {
- if (LogSupport.isLoggable()) {
- LogSupport.log("MailcapCommandMap: can't load " + var1, var18);
- }
-
- return null;
- } finally {
- try {
- if (var2 != null) {
- var2.close();
- }
- } catch (IOException var16) {
- }
-
- }
-
- return var4;
- }
-
- private void loadAllResources(List var1, String var2) {
- boolean var3 = false;
-
- try {
- Object var5 = null;
- ClassLoader var26 = SecuritySupport.getContextClassLoader();
- if (var26 == null) {
- var26 = this.getClass().getClassLoader();
- }
-
- URL[] var4;
- if (var26 != null) {
- var4 = SecuritySupport.getResources(var26, var2);
- } else {
- var4 = SecuritySupport.getSystemResources(var2);
- }
-
- if (var4 != null) {
- if (LogSupport.isLoggable()) {
- LogSupport.log("MailcapCommandMap: getResources");
- }
-
- for(int var6 = 0; var6 < var4.length; ++var6) {
- URL var7 = var4[var6];
- InputStream var8 = null;
- if (LogSupport.isLoggable()) {
- LogSupport.log("MailcapCommandMap: URL " + var7);
- }
-
- try {
- var8 = SecuritySupport.openStream(var7);
- if (var8 != null) {
- var1.add(new MailcapFile(var8));
- var3 = true;
- if (LogSupport.isLoggable()) {
- LogSupport.log("MailcapCommandMap: successfully loaded mailcap file from URL: " + var7);
- }
- } else if (LogSupport.isLoggable()) {
- LogSupport.log("MailcapCommandMap: not loading mailcap file from URL: " + var7);
- }
- } catch (IOException var21) {
- if (LogSupport.isLoggable()) {
- LogSupport.log("MailcapCommandMap: can't load " + var7, var21);
- }
- } catch (SecurityException var22) {
- if (LogSupport.isLoggable()) {
- LogSupport.log("MailcapCommandMap: can't load " + var7, var22);
- }
- } finally {
- try {
- if (var8 != null) {
- var8.close();
- }
- } catch (IOException var20) {
- }
-
- }
- }
- }
- } catch (Exception var24) {
- if (LogSupport.isLoggable()) {
- LogSupport.log("MailcapCommandMap: can't load " + var2, var24);
- }
- }
-
- if (!var3) {
- if (LogSupport.isLoggable()) {
- LogSupport.log("MailcapCommandMap: !anyLoaded");
- }
-
- MailcapFile var25 = this.loadResource("/" + var2);
- if (var25 != null) {
- var1.add(var25);
- }
- }
-
- }
-
- private MailcapFile loadFile(String var1) {
- MailcapFile var2 = null;
-
- try {
- var2 = new MailcapFile(var1);
- } catch (IOException var4) {
- }
-
- return var2;
- }
-
- public MailcapCommandMap(String var1) throws IOException {
- this();
- if (LogSupport.isLoggable()) {
- LogSupport.log("MailcapCommandMap: load PROG from " + var1);
- }
-
- if (this.field_0[0] == null) {
- this.field_0[0] = new MailcapFile(var1);
- }
-
- }
-
- public MailcapCommandMap(InputStream var1) {
- this();
- LogSupport.log("MailcapCommandMap: load PROG");
- if (this.field_0[0] == null) {
- try {
- this.field_0[0] = new MailcapFile(var1);
- } catch (IOException var3) {
- }
- }
-
- }
-
- public synchronized CommandInfo[] getPreferredCommands(String var1) {
- ArrayList var2 = new ArrayList();
- if (var1 != null) {
- var1 = var1.toLowerCase();
- }
-
- for(int var3 = 0; var3 < this.field_0.length; ++var3) {
- if (this.field_0[var3] != null) {
- Map var4 = this.field_0[var3].getMailcapList(var1);
- if (var4 != null) {
- this.appendPrefCmdsToList(var4, var2);
- }
- }
- }
-
- for(int var5 = 0; var5 < this.field_0.length; ++var5) {
- if (this.field_0[var5] != null) {
- Map var8 = this.field_0[var5].getMailcapFallbackList(var1);
- if (var8 != null) {
- this.appendPrefCmdsToList(var8, var2);
- }
- }
- }
-
- CommandInfo[] var6 = new CommandInfo[var2.size()];
- var6 = (CommandInfo[])var2.toArray(var6);
- return var6;
- }
-
- private void appendPrefCmdsToList(Map var1, List var2) {
- for(String var4 : var1.keySet()) {
- if (!this.checkForVerb(var2, var4)) {
- List var5 = (List)var1.get(var4);
- String var6 = (String)var5.get(0);
- var2.add(new CommandInfo(var4, var6));
- }
- }
-
- }
-
- private boolean checkForVerb(List var1, String var2) {
- Iterator var3 = var1.iterator();
-
- while(var3.hasNext()) {
- String var4 = ((CommandInfo)var3.next()).getCommandName();
- if (var4.equals(var2)) {
- return true;
- }
- }
-
- return false;
- }
-
- public synchronized CommandInfo[] getAllCommands(String var1) {
- ArrayList var2 = new ArrayList();
- if (var1 != null) {
- var1 = var1.toLowerCase();
- }
-
- for(int var3 = 0; var3 < this.field_0.length; ++var3) {
- if (this.field_0[var3] != null) {
- Map var4 = this.field_0[var3].getMailcapList(var1);
- if (var4 != null) {
- this.appendCmdsToList(var4, var2);
- }
- }
- }
-
- for(int var5 = 0; var5 < this.field_0.length; ++var5) {
- if (this.field_0[var5] != null) {
- Map var8 = this.field_0[var5].getMailcapFallbackList(var1);
- if (var8 != null) {
- this.appendCmdsToList(var8, var2);
- }
- }
- }
-
- CommandInfo[] var6 = new CommandInfo[var2.size()];
- var6 = (CommandInfo[])var2.toArray(var6);
- return var6;
- }
-
- private void appendCmdsToList(Map var1, List var2) {
- for(String var4 : var1.keySet()) {
- for(String var7 : (List)var1.get(var4)) {
- var2.add(new CommandInfo(var4, var7));
- }
- }
-
- }
-
- public synchronized CommandInfo getCommand(String var1, String var2) {
- if (var1 != null) {
- var1 = var1.toLowerCase();
- }
-
- for(int var3 = 0; var3 < this.field_0.length; ++var3) {
- if (this.field_0[var3] != null) {
- Map var4 = this.field_0[var3].getMailcapList(var1);
- if (var4 != null) {
- List var5 = (List)var4.get(var2);
- if (var5 != null) {
- String var6 = (String)var5.get(0);
- if (var6 != null) {
- return new CommandInfo(var2, var6);
- }
- }
- }
- }
- }
-
- for(int var7 = 0; var7 < this.field_0.length; ++var7) {
- if (this.field_0[var7] != null) {
- Map var8 = this.field_0[var7].getMailcapFallbackList(var1);
- if (var8 != null) {
- List var9 = (List)var8.get(var2);
- if (var9 != null) {
- String var10 = (String)var9.get(0);
- if (var10 != null) {
- return new CommandInfo(var2, var10);
- }
- }
- }
- }
- }
-
- return null;
- }
-
- public synchronized void addMailcap(String var1) {
- LogSupport.log("MailcapCommandMap: add to PROG");
- if (this.field_0[0] == null) {
- this.field_0[0] = new MailcapFile();
- }
-
- this.field_0[0].appendToMailcap(var1);
- }
-
- public synchronized DataContentHandler createDataContentHandler(String var1) {
- if (LogSupport.isLoggable()) {
- LogSupport.log("MailcapCommandMap: createDataContentHandler for " + var1);
- }
-
- if (var1 != null) {
- var1 = var1.toLowerCase();
- }
-
- for(int var2 = 0; var2 < this.field_0.length; ++var2) {
- if (this.field_0[var2] != null) {
- if (LogSupport.isLoggable()) {
- LogSupport.log(" search DB #" + var2);
- }
-
- Map var3 = this.field_0[var2].getMailcapList(var1);
- if (var3 != null) {
- List var4 = (List)var3.get("content-handler");
- if (var4 != null) {
- String var5 = (String)var4.get(0);
- DataContentHandler var6 = this.getDataContentHandler(var5);
- if (var6 != null) {
- return var6;
- }
- }
- }
- }
- }
-
- for(int var7 = 0; var7 < this.field_0.length; ++var7) {
- if (this.field_0[var7] != null) {
- if (LogSupport.isLoggable()) {
- LogSupport.log(" search fallback DB #" + var7);
- }
-
- Map var8 = this.field_0[var7].getMailcapFallbackList(var1);
- if (var8 != null) {
- List var9 = (List)var8.get("content-handler");
- if (var9 != null) {
- String var10 = (String)var9.get(0);
- DataContentHandler var11 = this.getDataContentHandler(var10);
- if (var11 != null) {
- return var11;
- }
- }
- }
- }
- }
-
- return null;
- }
-
- private DataContentHandler getDataContentHandler(String var1) {
- if (LogSupport.isLoggable()) {
- LogSupport.log(" got content-handler");
- }
-
- if (LogSupport.isLoggable()) {
- LogSupport.log(" class " + var1);
- }
-
- try {
- Object var2 = null;
- ClassLoader var9 = SecuritySupport.getContextClassLoader();
- if (var9 == null) {
- var9 = this.getClass().getClassLoader();
- }
-
- Object var3 = null;
-
- try {
- var10 = var9.loadClass(var1);
- } catch (Exception var5) {
- var10 = Class.forName(var1);
- }
-
- if (var10 != null) {
- return (DataContentHandler)var10.newInstance();
- }
- } catch (IllegalAccessException var6) {
- if (LogSupport.isLoggable()) {
- LogSupport.log("Can't load DCH " + var1, var6);
- }
- } catch (ClassNotFoundException var7) {
- if (LogSupport.isLoggable()) {
- LogSupport.log("Can't load DCH " + var1, var7);
- }
- } catch (InstantiationException var8) {
- if (LogSupport.isLoggable()) {
- LogSupport.log("Can't load DCH " + var1, var8);
- }
- }
-
- return null;
- }
-
- public synchronized String[] getMimeTypes() {
- ArrayList var1 = new ArrayList();
-
- for(int var2 = 0; var2 < this.field_0.length; ++var2) {
- if (this.field_0[var2] != null) {
- String[] var3 = this.field_0[var2].getMimeTypes();
- if (var3 != null) {
- for(int var4 = 0; var4 < var3.length; ++var4) {
- if (!var1.contains(var3[var4])) {
- var1.add(var3[var4]);
- }
- }
- }
- }
- }
-
- String[] var5 = new String[var1.size()];
- var5 = (String[])var1.toArray(var5);
- return var5;
- }
-
- public synchronized String[] getNativeCommands(String var1) {
- ArrayList var2 = new ArrayList();
- if (var1 != null) {
- var1 = var1.toLowerCase();
- }
-
- for(int var3 = 0; var3 < this.field_0.length; ++var3) {
- if (this.field_0[var3] != null) {
- String[] var4 = this.field_0[var3].getNativeCommands(var1);
- if (var4 != null) {
- for(int var5 = 0; var5 < var4.length; ++var5) {
- if (!var2.contains(var4[var5])) {
- var2.add(var4[var5]);
- }
- }
- }
- }
- }
-
- String[] var6 = new String[var2.size()];
- var6 = (String[])var2.toArray(var6);
- return var6;
- }
- }
-